# print("hllo");
# a = 20;
# print(type(a));
# a = 'asdf';
# print(type(a));
# a = 18.8;
# print(type(a));
# print((20+30+40+50)/4);
# a = 20;
# b = 30;
# b = a;
# print(a);
# print(b);
# a = 'asdf';
# b = 'zxcv';
# print(a+b);
# #这是改变了类型的测试
# a = 10;
# print(type(a));
# a = 24.4;
# print(type(a));
# a = 'asdf';
# print(type(a));
# a = '''haha'hello "world"''''';
#
# print(a);
# num = 10;
# print(f'num={num}');
#
#
# # num = input('请输入一个整数 ');
# # print(f'您输入的整数是{num}');
# a = 10;
# a = a+1;
# print(a);
# b=10;
# b+=b;
# print(b);
# b+=10;
# print(b);
# #python是自上往下运行，并且可以不带分号
# print(1);
# print(2);
# print(3)
# #了解python进行类型说明的时候格式，**是求幂
# num:int =2**2;
# print(num);
#不可以进行字符串和数字相加，但是类型强制转换后可以
# a='asdf';
# a=int(a)
# b=10;
# print(a+b);
from itertools import filterfalse


#条件语句;郁c++不同，python语句后面加：
# a=(int(input('请输入你的数字')));
# if a>0:
#     print('a是正数')
# elif a<0:
#     print('a诗负数')
# else:
#     print('a是0')

#当and时，第一条语句错误，便不会执行and后的语句
# a=10;
# b=20;
# print(a>b and print('1'))

#没有进行强制类型转换的时候，一直处于选择错误
# choice=int(input('请输入你的选择：选择1躺平摆烂，选择二奋发图强'));
# if choice==1:
#     print('毕业即失业');
# elif choice==2:
#     print('找到好工作');
# else:
#     print('选择错误！');

#在python中是根据代码块的缩进来判断组合


#判断一个证书是否为奇数
# num=int(input('请输入数字'));
# if num%2==0:
#     print('是偶数');
# elif num%2==1:
#     print('是奇数');
# else:
#     print('0');


#输入一个数，判断是正数还是负数
# num=int(input('请输入一个数字'));
# if num>0:
#     print('是正数');
# elif num<0:
#     print('是负数');
# else:
#     print('0');

# num=int(input());
# print(num-10);


#while循环
# a=1;
# while a<11:
#     print(a);
#     a+=1;


#for循环
# a=1;
# for a in range(1,11):
#     print(a)
#     a+=1;


#for循环
#range有第三个参数，代表步长，默认的步场是1
# a=1;
# for a in range(1,11,2):
#     print(a)
#     a+=1;

# def add(a,b):
#     a+b;
#     sum=a+b;
#     print(sum)
#
# def jian(a,b):
#     a-b;
#     result=a-b;
#     print(result);

# add(1,2)
# add(100,20)
# #实际参数传递个数不一样,便会报错
# #add(100)
# jian(10,29)
#
# def test(a):
#     print(a);
#
# test(10)
# test(100)

# def clacnum(beg,end):
#     sum=0;
#     i=1;
#     for i in range(beg,end):
#         sum+=i;
#         print(sum)
#
# clacnum(10,20);

# def clacsum(begin,end):
#     sum=0
#     for i in range(begin,end):
#         sum+=1
#     print(sum)
#
# clacsum(1,10)


#一个函数尽量只实现一种功能，上面的函数实现了加法和打印的功能，下面的函数只实现加法功能，只实现一种功能，可以称为低耦合，
#在一个事情改变的时候不会影响另一件事情
# def clacsum(begin,end):
#     sum=0
#     for i in range(begin,end):
#         sum+=1
#     return sum
#
# result=clacsum(1,10)
# print(result)

#判断是否是奇数
# def isOdd(number):
#     if number % 2 == 0:
#         return False
#     else:
#         return True
#
# result=isOdd(3)
# print(result)

#当函数体中遇到return语句会立刻返回，所以上面的函数也可以写成
# def isOdd(number):
#     if number % 2 == 0:
#         return False
#
#     return True
#
# result=isOdd(3)
# print(result)

#一个函数是有多个返回值的，用，隔开

# def getnum():
#     x=10
#     y=20
#     return x,y
#
# a,b=getnum()
# print(a,b)


#可以用_忽略不想要的返回值
# def getnum():
#     x=10
#     y=20
#     return x,y
#
# _,b=getnum()
# print(_,b)


#由此可见，在不同的作用域中，允许同名的变量
#虽然名字相同，实际上是不同的变量
# x=20;
# def getnum():
#     x=10
#     print(f'函数体内部{x}')
#
# getnum()
# print(f'函数体外部{x}')


#如果想在函数题内部修改全部变量的值，需要用global关键字声明
x=20;
def getnum():
    global x
    x=10
    print(f'函数体内部{x}')

getnum()
print(f'函数体外部{x}')

